1. Field of the Invention
The present invention relates to storage systems. More particularly, the invention relates to a method and apparatus for managing storage and access of data that is mirrored or copied to multiple storage locations.
2. Description of the Related Art
The present invention is directed to a method and system for improving I/O response times for applications that require optimal response times for data access, such as applications directed to storing or retrieving on-demand video or audio. Applications that provide video streams (or audio streams) often store portions of the video data in many locations on many data storage devices. As used herein, the term "data storage device" refers to any device or apparatus utilizable for the storage of data, e.g., a disk drive. For explanatory purposes only and not as an intent to limit the scope of this invention, the term "disk drive" will be used throughout this document instead of the term "data storage device."
To provide video on-demand at the proper display rate, the portions of stored video data are continually being retrieved and displayed at a viewing device. However, different disk drives often provide different momentary response times to I/O requests due to varying system and environmental factors such as disk drive load, number of other requests on I/O request queues, network traffic, and physical disk drive proximity. If the video data is stored on many storage devices, then it is possible for the video data to be delivered out of order if some of the disk drives have momentary response times that are slower (or faster) than other disk drives.
One solution to this problem is to issue an I/O command for a particular piece of video data only when the prior sequential piece of video data has been delivered. Alternatively, the system may buffer data so that even if the video stream arrives out of order, the video data is presented in order on the viewing device. The drawback to these solutions is that the delivered video stream is potentially stopped or constricted if any particular piece of video data has a relatively slow I/O response or delivery time. In other words, this method could produce an unacceptable display rate in the viewing device, resulting in a video stream that appears to have delayed or stopped motion on that display.
Another solution is to allow the video data to continue to stream even if the data arrives out of order, but to ignore any earlier pieces of data in the video sequence that arrive at the viewing device after a later piece of data in the video sequence. The drawback to this method is that gaps may appear in the video stream at the viewing device, resulting in a video stream having a jerky motion on the display.
Another solution is to store the video data (striped or unstriped) in an ordered manner on the disk drives. In this way, the chance of video data arriving out of order is reduced. One drawback to striping data in an ordered manner across disk drives is that it presents problems when new disk drives are added to the system. Adding new disk drives may require wholesale restriping of data across the new configuration of disk drives. Moreover, storing data in an ordered fashion may cause load balancing problems, since the data cannot be randomly scattered across the disk drives.
Thus, there is a need for a method and system for allowing optimal response times for access to data items stored in a storage system.